﻿using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Threading;
using System.Globalization;
using Nivdal.AuxCode;

namespace Nivdal
{
    public partial class FriendsDetails : System.Web.UI.Page
    {
        protected void Page_Load(object sender, EventArgs e)
        {
            this.Title = Resources.Resource.Default_PageTitle + ", " + Resources.Resource.FriendsDetails_PageTitle;
            // security part
            if (!HttpContext.Current.User.Identity.IsAuthenticated)
                Response.Redirect("~/Default.aspx");

            OnlineUser ou = (OnlineUser)Session["User"];
            GetNivdalData.GetNivdalData GND = new GetNivdalData.GetNivdalData();

            if (ou.TeamId == "Null")
                Response.Redirect("~/GeneralMessage.aspx?MessageString=M74ggdizz5wfeh");
            
            //removed - this page will be visible to all the users. Not only to premium users.
            //if (!ou.IsPremium)
            //    Response.Redirect("~/GeneralMessage.aspx?MessageString=gfkkjFSDei3w7lzTD");

            if (Request.QueryString["Message"] != null)
                this.MessageLabel.Text = Request.QueryString["Message"];

            this.MessagePanel.Visible = (this.MessageLabel.Text.Length > 0);

            if (!IsPostBack)
            {
                this.MyFriendsDataSourse.SelectParameters.Add("UserId", ou.UserId);

                // deal with niewbie tips                
                if ((int)Session["NewbieTipStage"] == 9)
                {
                    Session["NewbieTipStage"] = 10;
                    Session["NewbieTipText"] = GND.ReadNivdalStringData("TipId", "Language", "dbo.Nivdal_NewbieTipsGetTip", "10", ou.Language);
                    GND.ExecNivdalSQL("UserId", "StageId", "Nivdal_NewbieTipsSetStage", ou.UserId, "10");
                }

            }

        }

        protected override void InitializeCulture()
        {
            OnlineUser ou = (OnlineUser)Session["User"];
            Thread.CurrentThread.CurrentUICulture = new CultureInfo(ou.UICulture);
            Thread.CurrentThread.CurrentCulture = CultureInfo.CreateSpecificCulture(ou.Culture);
        }

        #region SortBy functions
        protected void SortByLeaguePositionRecord(Object sender, EventArgs e)
        {
            SortByString("LeaguePosition");
        }

        protected void SortByRecordUnbeatenSequence(Object sender, EventArgs e)
        {
            SortByString("RecordUnbeatenSequence");
        }

        protected void SortByRecordWinningSequence(Object sender, EventArgs e)
        {
            SortByString("RecordWinningSequence");
        }

        protected void SortByRecordUnbeatenSequenceThisSeason(Object sender, EventArgs e)
        {
            SortByString("RecordUnbeatenSequenceThisSeason");
        }
        protected void SortByRecordWinningSequenceThisSeason(Object sender, EventArgs e)
        {
            SortByString("RecordWinningSequenceThisSeason");
        }
        protected void SortByRecordGoalsInOneMatchBothTeams(Object sender, EventArgs e)
        {
            SortByString("RecordGoalsInOneMatchBothTeams");
        }
        protected void SortByRecordGoalsScoredInOneGame(Object sender, EventArgs e)
        {
            SortByString("RecordGoalsScoredInOneGame");
        }

        protected string StopFriendshipOnClientClick()
        {
            return ("return confirm ('" + Resources.Resource.Friends_AreYouSureDeleteFriendshipQuestion + "')");
        }
        protected void DeleteFriend(object sender, GridViewCommandEventArgs e)
        {
            if (e.CommandName == "Delete")
            {
                string SuggestionId = e.CommandArgument.ToString();
                GetNivdalData.GetNivdalData GND = new GetNivdalData.GetNivdalData();
                OnlineUser ou = (OnlineUser)Session["User"];
                string Answer = GND.ReadNivdalStringData("SuggestionId", "Language", "Nivdal_FriendshipStopBeingFriends", SuggestionId, ou.Language);
                Response.Redirect("~/FriendsDetails.aspx?Message=" + Answer);
            }
        }


        protected void SortByString(string SortBy)
        {
            GetNivdalData.GetNivdalData GND = new GetNivdalData.GetNivdalData();

            if (SortByHiddenField.Value == SortBy)
            {
                if (SortAscDescHiddenField.Value == "ASC")
                {
                    SortAscDescHiddenField.Value = "DESC";
                }
                else
                {
                    SortAscDescHiddenField.Value = "ASC";
                }
            }
            else
            {
                SortByHiddenField.Value = SortBy;
                SortAscDescHiddenField.Value = "DESC";
            }

            MyFriendsDataSourse.SelectParameters.Clear();
            MyFriendsDataSourse.SelectParameters.Add("OrderBy", SortByHiddenField.Value);
            MyFriendsDataSourse.SelectParameters.Add("AscDesc", SortAscDescHiddenField.Value);
            MyFriendsDataSourse.SelectParameters.Add("UserId", GND.ReturnUserId());
            FriendsStatsGridView.DataBind();
        }

        #endregion Sort By functions

        protected string RowBackColor(bool IsTheUser)
        {
            if (IsTheUser)
                return ("Yellow");
            return ("White");
        }
    }
}